iT邦幫忙

第 12 屆 iThome 鐵人賽

DAY 4
0
AI & Data

為了解決財務危機從Unity跳槽來寫AI辨識的心路歷程系列 第 4

教電腦瞎子摸象摸出個所以然part.2 (星期九要不要來一杯痛苦的滋味?)

  • 分享至 

  • xImage
  •  


圖片來源:https://hackmd.io/@allen108108/rkn-oVGA4

延續昨天提取特徵的部分
卷積後產生出來的圖片(Feature Map)
每格像素會再乘上激勵函數再輸出給下一層

激勵函數(Activation functions)

Day2提到神經元的概念
輸入x->y=f(x)->輸出y
f(x)=神經元對於輸入資料的反應

這是一個有3層神經元的網路
w1,w2,w3是訓練時更新的權重值
每層的輸出大概可以寫成一個線性公式: f(x) = w*x + b

x = 明天要不要去吃拉麵?
w = 參加意願的程度(喜好度)
b = 實際上有沒有空

那如果改問一個不合邏輯的問題 EX:星期九要不要來一杯痛苦的滋味???(比喻非線性資料)
我想聽到的人都會突然腦死
激勵函數就可以解決對非線性資料的處理問題
例如聽到星期九這樣奇怪的時間,就直接拒絕(輸出0)
聽到星期六,就輸出認真決定的結果
來介紹一個常用的函數-Relu

整流線性單位函數(Relu)


由圖可知
if x <= 0 : y=0
else: y=x
輸入負數將會輸出零
輸出零的的神經元會像死亡一樣停止更新 就像我們忘記東西一樣
所以最後神經網路所記得的特徵不會是死的(只認得一種)
藉此避免結果過度擬和,練成一顆死腦筋XD

梯度下降法(gradient descent)

像這種已知解答、不斷對答案修正的訓練法叫做反向傳播算法(Backpropagation,縮寫為BP)
因為我們希望與答案的誤差(loss)是收斂的
會使用BP配合梯度下降法去修正神經元的f(x)往正解的方向一步步不斷趨近
而梯度指的就是對f(x)中的未知數偏微分(求變化量),再用得出來的梯度去修正參數
算式:

t:第幾次更新參數
γ:學習率(Learning rate)=一次要趨近多少步

x^(t)為初始解(初始先猜答案),然後根據這組隨機產生的「解」開始算此「解」的梯度方向大小,然後將這個「解」去減去梯度方向

例如這邊有條 f(x)=x²-10x+1 的曲線 紅點的地方為初始解
可以看見曲線收斂在x=5
如果學習率太大(一步走太寬) 紅點有可能最後在x=0跟x=10的地方跳來跳去
永遠到不了最佳解

Ref

https://medium.com/%E5%AD%B8%E4%BB%A5%E5%BB%A3%E6%89%8D/activation-function-relu-maxout-f958f066fbfa
https://zh.wikipedia.org/wiki/%E5%8F%8D%E5%90%91%E4%BC%A0%E6%92%AD%E7%AE%97%E6%B3%95
https://zh.wikipedia.org/wiki/%E7%BA%BF%E6%80%A7%E6%95%B4%E6%B5%81%E5%87%BD%E6%95%B0#%E4%BC%98%E5%8A%BF
https://ithelp.ithome.com.tw/articles/10198715
https://kknews.cc/zh-tw/code/p95ko58.html
https://medium.com/@chih.sheng.huang821/%E6%A9%9F%E5%99%A8%E5%AD%B8%E7%BF%92-%E5%9F%BA%E7%A4%8E%E6%95%B8%E5%AD%B8-%E4%BA%8C-%E6%A2%AF%E5%BA%A6%E4%B8%8B%E9%99%8D%E6%B3%95-gradient-descent-406e1fd001f


上一篇
教電腦瞎子摸象摸出個所以然
下一篇
教電腦瞎子摸象摸出個所以然part.3
系列文
為了解決財務危機從Unity跳槽來寫AI辨識的心路歷程6
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言